package com.lvzero.answer.util;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

/**
 * 时间工具类
 */
public class DateUtil {

    /**
     * 格式化当前时间为 "2022-08-31 14:30:10"
     *
     * @return
     */
    public static String formatCurTime() {
        Date date = Calendar.getInstance().getTime();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String curTime = sdf.format(date.getTime());
        return curTime;
    }

    /**
     * 格式化当前时间为 "2022-08-31"
     *
     * @return
     */
    public static String formatCurTime2() {
        Date date = Calendar.getInstance().getTime();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String curTime = sdf.format(date.getTime());
        return curTime;
    }

    /**
     * 【分享成功后】是否需要更新时间
     *
     * @param res
     * @return
     */
    public static boolean shouldUpdate(Map res) {

        //可以根据最后一次更新的时间来判断；

        //数据库返回的时间
        Date date = (Date) res.get("update_time");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int year = calendar.get(Calendar.YEAR);
        //从0开始的，11月month=10
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DATE);


        //当前的系统时间
        Calendar curCalendar = Calendar.getInstance();

        int curYear = curCalendar.get(Calendar.YEAR);
        int curMonth = curCalendar.get(Calendar.MONTH);
        int curDay = curCalendar.get(Calendar.DATE);

        //比较时间
        if (curYear > year || curMonth > month || curDay > day) {
            return true;
        }
        //如果跨月了 一个是12月 一个是1月   那么一定也跨年了 所以也不用这个判断
        if (month == 11 && curMonth == 0) {
            return true;
        }

        return false;
    }
}
